import UIKit

@available(iOS 11.0, *)
extension QKC where AA :UIDocumentBrowserViewController {
     open func delegate_qk_s(_ delegate:  UIDocumentBrowserViewControllerDelegate?) -> QKC<AA,YY,ZZ, UIDocumentBrowserViewControllerDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UIDocumentBrowserViewControllerDelegate?>{
		 self +^ self.value.delegate
	}

	/// Defaults to YES
    open func allowsDocumentCreation_qk_s(_ allowsDocumentCreation:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: allowsDocumentCreation).then_QK { $0.value.allowsDocumentCreation = allowsDocumentCreation }
	}
    open func allowsDocumentCreation_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.allowsDocumentCreation
	}

	/// Defaults to NO
    open func allowsPickingMultipleItems_qk_s(_ allowsPickingMultipleItems:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: allowsPickingMultipleItems).then_QK { $0.value.allowsPickingMultipleItems = allowsPickingMultipleItems }
	}
    open func allowsPickingMultipleItems_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.allowsPickingMultipleItems
	}

    open func allowedContentTypes_qk_g() -> QKC<AA,YY,ZZ, [String] >{
		 self +^ self.value.allowedContentTypes
	}

	/// Note that the recentDocumentsContentTypes must be a subset conforming to the types declared in allowedContentTypes.
    @available(iOS 13.0, *)
    open func recentDocumentsContentTypes_qk_g() -> QKC<AA,YY,ZZ, [String] >{
		 self +^ self.value.recentDocumentsContentTypes
	}

	/// Force the display of file extensions (default: NO).
    @available(iOS 13.0, *)
    open func shouldShowFileExtensions_qk_s(_ shouldShowFileExtensions:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: shouldShowFileExtensions).then_QK { $0.value.shouldShowFileExtensions = shouldShowFileExtensions }
	}
    @available(iOS 13.0, *)
    open func shouldShowFileExtensions_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.shouldShowFileExtensions
	}

	/// An array of buttons that will be added to the existing buttons in the UIDocumentBrowserViewController navigation bar
    open func additionalLeadingNavigationBarButtonItems_qk_s(_ additionalLeadingNavigationBarButtonItems:  [UIBarButtonItem]) -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		return link(next: additionalLeadingNavigationBarButtonItems).then_QK { $0.value.additionalLeadingNavigationBarButtonItems = additionalLeadingNavigationBarButtonItems }
	}
    open func additionalLeadingNavigationBarButtonItems_qk_g() -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		 self +^ self.value.additionalLeadingNavigationBarButtonItems
	}

	/// An array of buttons that will be added to the existing buttons in the UIDocumentBrowserViewController navigation bar
    open func additionalTrailingNavigationBarButtonItems_qk_s(_ additionalTrailingNavigationBarButtonItems:  [UIBarButtonItem]) -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		return link(next: additionalTrailingNavigationBarButtonItems).then_QK { $0.value.additionalTrailingNavigationBarButtonItems = additionalTrailingNavigationBarButtonItems }
	}
    open func additionalTrailingNavigationBarButtonItems_qk_g() -> QKC<AA,YY,ZZ, [UIBarButtonItem]>{
		 self +^ self.value.additionalTrailingNavigationBarButtonItems
	}

	/// Allows clients to add custom actions in the menu and the navigation bar. These actions are contextual to the document items.
    open func customActions_qk_s(_ customActions:  [UIDocumentBrowserAction]) -> QKC<AA,YY,ZZ, [UIDocumentBrowserAction]>{
		return link(next: customActions).then_QK { $0.value.customActions = customActions }
	}
    open func customActions_qk_g() -> QKC<AA,YY,ZZ, [UIDocumentBrowserAction]>{
		 self +^ self.value.customActions
	}

	/// Allows clients to customize the look of the browser. Default: UIDocumentBrowserUserInterfaceStyleWhite
    open func browserUserInterfaceStyle_qk_s(_ browserUserInterfaceStyle:  UIDocumentBrowserViewController.BrowserUserInterfaceStyle) -> QKC<AA,YY,ZZ, UIDocumentBrowserViewController.BrowserUserInterfaceStyle>{
		return link(next: browserUserInterfaceStyle).then_QK { $0.value.browserUserInterfaceStyle = browserUserInterfaceStyle }
	}
    open func browserUserInterfaceStyle_qk_g() -> QKC<AA,YY,ZZ, UIDocumentBrowserViewController.BrowserUserInterfaceStyle>{
		 self +^ self.value.browserUserInterfaceStyle
	}

	/// Title of the Create Document button (default: "Create Document”).
    @available(iOS 13.0, *)
    open func localizedCreateDocumentActionTitle_qk_s(_ localizedCreateDocumentActionTitle:  String) -> QKC<AA,YY,ZZ, String>{
		return link(next: localizedCreateDocumentActionTitle).then_QK { $0.value.localizedCreateDocumentActionTitle = localizedCreateDocumentActionTitle }
	}
    @available(iOS 13.0, *)
    open func localizedCreateDocumentActionTitle_qk_g() -> QKC<AA,YY,ZZ, String>{
		 self +^ self.value.localizedCreateDocumentActionTitle
	}

	/// Aspect ratio of the Create Document button defined as width / height (default: 2/3).
    @available(iOS 13.0, *)
    open func defaultDocumentAspectRatio_qk_s(_ defaultDocumentAspectRatio:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: defaultDocumentAspectRatio).then_QK { $0.value.defaultDocumentAspectRatio = defaultDocumentAspectRatio }
	}
    @available(iOS 13.0, *)
    open func defaultDocumentAspectRatio_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.defaultDocumentAspectRatio
	}

	/// A UIDocumentBrowserTransitionController object is used to display a loading indicator, while the application is spending time on time-consuming operations (e.g., loading, parsing, …) after having finished the file download, and before presenting it. To be used together with the UIViewControllerTransitioningDelegate protocol for custom view controller transitions.
    @available(iOS 12.0, *)
    open func transitionController_qk_f(forDocumentAt documentURL: URL) -> QKC<AA,YY,ZZ,UIDocumentBrowserTransitionController>{
		 self +^ self.value.transitionController(forDocumentAt:documentURL)
	}

    @available(iOS, introduced: 11.0, deprecated: 12.0)
    open func transitionController_qk_f(forDocumentURL documentURL: URL) -> QKC<AA,YY,ZZ,UIDocumentBrowserTransitionController>{
		 self +^ self.value.transitionController(forDocumentURL:documentURL)
	}

}

/// @discussion You can use this object to display a loading indicator if you need time to perform time-consuming operations (loading, parsing, …) after the document download and before presenting it. You can also get a transition controller to pass to UIKit when pushing or presenting your document view
@available(iOS 11.0, *)
extension QKC where AA :UIDocumentBrowserTransitionController {
	/// An optional progress can be displayed on the document thumbnail while the document is loading (during opening).
    open func loadingProgress_qk_s(_ loadingProgress:  Progress?) -> QKC<AA,YY,ZZ, Progress?>{
		return link(next: loadingProgress).then_QK { $0.value.loadingProgress = loadingProgress }
	}
    open func loadingProgress_qk_g() -> QKC<AA,YY,ZZ, Progress?>{
		 self +^ self.value.loadingProgress
	}

	/// If UIDocumentBrowserViewController is being presented, this view should be a subview of the presenting view controller's view
     open func targetView_qk_s(_ targetView:  UIView?) -> QKC<AA,YY,ZZ, UIView?>{
		return link(next: targetView).then_QK { $0.value.targetView = targetView }
	}
     open func targetView_qk_g() -> QKC<AA,YY,ZZ, UIView?>{
		 self +^ self.value.targetView
	}

}

